package com.luyou.framework.security.config;

import cn.dev33.satoken.stp.StpUtil;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;

/**
 *
 * @author luyou
 * @version 1.0
 * @date 2024/6/29 17:09
 * @desc security 配置
 */
@ConfigurationProperties(prefix = "luyou.security")
@Validated
@Data
public class SecurityProperties {

    /**
     * token 名称（同时也是 cookie 名称）
     */
    private String  tokenName = "lytoken";
    /**
     *  token 有效期（单位：秒） 默认30天，-1 代表永久有效
     */
    private long timeout = 30 * 24 * 60 * 60;

    /**
     * token 最低活跃频率（单位：秒），如果 token 超过此时间没有访问系统就会被冻结，默认-1 代表不限制，永不冻结
     */
    private long activeTimeout = -1;

    /**
     * 是否允许同一账号多地同时登录 （为 true 时允许一起登录, 为 false 时新登录挤掉旧登录）
     */
    private Boolean isConcurrent = true;

    /**
     * 在多人登录同一账号时，是否共用一个 token （为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token）
     */
    private Boolean isShare = true;

    /**
     * token 风格（默认可取值：uuid、simple-uuid、random-32、random-64、random-128、tik）
     */
    private String tokenStyle = "uuid";

    /**
     * 是否输出操作日志
     */
    private Boolean isLog = true;
}
